package com.erp.erp_ui.money.vo;

import java.math.BigDecimal;

/**
 * @ClassName : ImportCarryDetailVo
 * @Description : 付款导出运明细出参实体
 * @Author : lst
 * @Date: 2021-04-03 21:09
 */
public class ImportCarryDetailVo {

    /**
     * 发票编号(出运明细单号)
     */
    private String invoiceNumber;
    /**
     * 合同编号
     */
    private String contractNo;
    /**
     * 采购单号
     */
    private String purchaseNo;
    /**
     * 供应商名称
     */
    private String supplierName;
    /**
     * 业务员
     */
    private String salesmanName;
    /**
     * 业务员编码
     */
    private String salesmanCode;
    /**
     * 操作员
     */
    private String operator;
    /**
     * 应付金额 产品(成品)数量*成本单价*（1-定金比例）  （配件）产品数量*成本单价*（1-定金比例）
     */
    private BigDecimal amountsPayable;
    /**
     * 未付款金额(应付总金额-已付款金额)
     */
    private BigDecimal unPaidAmount;
    /**
     * 采购付款比例
     */
    private BigDecimal earnestRate;
    /**
     * 制单公司
     */
    private String companyName;
    /**
     * 制单公司编码
     */
    private String companyCode;
    /**
     * 付款类型编码
     */
    private String typeCode;
    /**
     * 币种
     */
    private String currency;
    /**
     * 申请合计
     */
    private BigDecimal totalApplication;
    /**
     * 采购已付款金额
     */
    private BigDecimal purchasePaidAmount;
    /**
     * 采购合同总额
     */
    private BigDecimal totalPurchaseAmount;
    /**
     * 发票合同总额 = 应付总金额
     */
    private BigDecimal totalInvoiceAmount;
    /**
     * 发票已付款金额 = 已付款金额
     */
    private BigDecimal invoicePaidAmount;
    /**
     * 外销已收款金额
     */
    private BigDecimal saleAmountReceived;
    /**
     * 出运日期
     */
    private String carryDate;
    /**
     * 客户代码
     */
    private String customerCode;
    /**
     * 供应商账期
     */
    private String supplierAccountPeriod;
    /**
     * 外销客户账期
     */
    private String saleAccountPeriod;

    /**
     * 已分摊金额
     */
    private BigDecimal allocatedAmount;

    /**
     * 未分摊金额
     */
    private BigDecimal unallocatedAmount;

    /**
     * 申请金额(默认等于应付总金额)
     */
    private BigDecimal applicationAmount;

    /**
     * 产品类型(1:成品 0:配件)
     */
    private Integer productType;

    /**
     * 产品ID(出运明细产品/配件id)
     */
    private Integer productId;

    /**
     * 是否含税(1:含税出厂价2:未税出厂价3:含税FOB价4:未税FOB价)
     */
    private Integer isTaxIncluded;

    /**
     * 价格术语
     */
    private String priceTermsName;


    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }

    public String getSalesmanCode() {
        return salesmanCode;
    }

    public void setSalesmanCode(String salesmanCode) {
        this.salesmanCode = salesmanCode;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public BigDecimal getApplicationAmount() {
        return applicationAmount;
    }

    public void setApplicationAmount(BigDecimal applicationAmount) {
        this.applicationAmount = applicationAmount;
    }

    public BigDecimal getAllocatedAmount() {
        return allocatedAmount;
    }

    public void setAllocatedAmount(BigDecimal allocatedAmount) {
        this.allocatedAmount = allocatedAmount;
    }

    public BigDecimal getUnallocatedAmount() {
        return unallocatedAmount;
    }

    public void setUnallocatedAmount(BigDecimal unallocatedAmount) {
        this.unallocatedAmount = unallocatedAmount;
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getPurchaseNo() {
        return purchaseNo;
    }

    public void setPurchaseNo(String purchaseNo) {
        this.purchaseNo = purchaseNo;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getSalesmanName() {
        return salesmanName;
    }

    public void setSalesmanName(String salesmanName) {
        this.salesmanName = salesmanName;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public BigDecimal getAmountsPayable() {
        return amountsPayable;
    }

    public void setAmountsPayable(BigDecimal amountsPayable) {
        this.amountsPayable = amountsPayable;
    }

    public BigDecimal getUnPaidAmount() {
        return unPaidAmount;
    }

    public void setUnPaidAmount(BigDecimal unPaidAmount) {
        this.unPaidAmount = unPaidAmount;
    }

    public BigDecimal getEarnestRate() {
        return earnestRate;
    }

    public void setEarnestRate(BigDecimal earnestRate) {
        this.earnestRate = earnestRate;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public BigDecimal getTotalApplication() {
        return totalApplication;
    }

    public void setTotalApplication(BigDecimal totalApplication) {
        this.totalApplication = totalApplication;
    }

    public BigDecimal getPurchasePaidAmount() {
        return purchasePaidAmount;
    }

    public void setPurchasePaidAmount(BigDecimal purchasePaidAmount) {
        this.purchasePaidAmount = purchasePaidAmount;
    }

    public BigDecimal getTotalPurchaseAmount() {
        return totalPurchaseAmount;
    }

    public void setTotalPurchaseAmount(BigDecimal totalPurchaseAmount) {
        this.totalPurchaseAmount = totalPurchaseAmount;
    }

    public BigDecimal getTotalInvoiceAmount() {
        return totalInvoiceAmount;
    }

    public void setTotalInvoiceAmount(BigDecimal totalInvoiceAmount) {
        this.totalInvoiceAmount = totalInvoiceAmount;
    }

    public BigDecimal getInvoicePaidAmount() {
        return invoicePaidAmount;
    }

    public void setInvoicePaidAmount(BigDecimal invoicePaidAmount) {
        this.invoicePaidAmount = invoicePaidAmount;
    }

    public BigDecimal getSaleAmountReceived() {
        return saleAmountReceived;
    }

    public void setSaleAmountReceived(BigDecimal saleAmountReceived) {
        this.saleAmountReceived = saleAmountReceived;
    }

    public String getCarryDate() {
        return carryDate;
    }

    public void setCarryDate(String carryDate) {
        this.carryDate = carryDate;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getSupplierAccountPeriod() {
        return supplierAccountPeriod;
    }

    public void setSupplierAccountPeriod(String supplierAccountPeriod) {
        this.supplierAccountPeriod = supplierAccountPeriod;
    }

    public String getSaleAccountPeriod() {
        return saleAccountPeriod;
    }

    public void setSaleAccountPeriod(String saleAccountPeriod) {
        this.saleAccountPeriod = saleAccountPeriod;
    }

    public Integer getIsTaxIncluded() {
        return isTaxIncluded;
    }

    public void setIsTaxIncluded(Integer isTaxIncluded) {
        this.isTaxIncluded = isTaxIncluded;
    }

    public String getPriceTermsName() {
        return priceTermsName;
    }

    public void setPriceTermsName(String priceTermsName) {
        this.priceTermsName = priceTermsName;
    }

    /**
     * 重写toString
     */
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("ImportCarryDetailVo").append('[')
                .append("invoiceNumber=")
                .append(invoiceNumber)
                .append(",contractNo=")
                .append(contractNo)
                .append(",purchaseNo=")
                .append(purchaseNo)
                .append(",supplierName=")
                .append(supplierName)
                .append(",salesmanName=")
                .append(salesmanName)
                .append(",salesmanCode=")
                .append(salesmanCode)
                .append(",operator=")
                .append(operator)
                .append(",amountsPayable=")
                .append(amountsPayable)
                .append(",unPaidAmount=")
                .append(unPaidAmount)
                .append(",earnestRate=")
                .append(earnestRate)
                .append(",companyName=")
                .append(companyName)
                .append(",companyCode=")
                .append(companyCode)
                .append(",typeCode=")
                .append(typeCode)
                .append(",currency=")
                .append(currency)
                .append(",totalApplication=")
                .append(totalApplication)
                .append(",purchasePaidAmount=")
                .append(purchasePaidAmount)
                .append(",totalPurchaseAmount=")
                .append(totalPurchaseAmount)
                .append(",totalInvoiceAmount=")
                .append(totalInvoiceAmount)
                .append(",invoicePaidAmount=")
                .append(invoicePaidAmount)
                .append(",saleAmountReceived=")
                .append(saleAmountReceived)
                .append(",carryDate=")
                .append(carryDate)
                .append(",customerCode=")
                .append(customerCode)
                .append(",supplierAccountPeriod=")
                .append(supplierAccountPeriod)
                .append(",saleAccountPeriod=")
                .append(saleAccountPeriod)
                .append(",allocatedAmount=")
                .append(allocatedAmount)
                .append(",unallocatedAmount=")
                .append(unallocatedAmount)
                .append(",applicationAmount=")
                .append(applicationAmount)
                .append(",productType=")
                .append(productType)
                .append(",productId=")
                .append(productId)
                .append(",isTaxIncluded=")
                .append(isTaxIncluded)
                .append(",priceTermsName=")
                .append(priceTermsName)
                .append(']');
        return sb.toString();
    }
}
